<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    //栗子
    <!--
    1. 依次输出什么?
    gb: undefined
    fb: 1
    fb: 2
    fb: 3
    fe: 3
    fe: 2
    fe: 1
    ge: 1
    2. 整个过程中产生了几个执行上下文?  5
    -->
    <script type="text/javascript">
        console.log('gb: ' + i)
        var i = 1
        foo(1)

        function foo(i) {
            if (i == 4) {
                return
            }
            console.log('fb:' + i)
            foo(i + 1) //递归调用: 在函数内部调用自己
            console.log('fe:' + i) //出栈 所以会 3 2 1这样的结果
        }
        console.log('ge: ' + i)
    </script>
</body>

</html>